use super::keycodes::*;

#[rustfmt::skip]
pub const ASCII_2_HID: [[u8; 2]; 128] = [
    // 0-31 are invisible control codes, except 0x09 HT(TAB) and 0x0A LF(Enter)
    [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0],
    [0, 0], [HID_KEY_TAB, 0], [HID_KEY_ENTER, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0],
    [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0],
    [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0],
    [HID_KEY_SPACE, 0],                         // 32 ' '
    [HID_KEY_1, HID_KEY_SHIFT_LEFT],            // 33 '!'
    [HID_KEY_APOSTROPHE, HID_KEY_SHIFT_LEFT],   // 34 '"'
    [HID_KEY_3, HID_KEY_SHIFT_LEFT],            // 35 '#'
    [HID_KEY_4, HID_KEY_SHIFT_LEFT],            // 36 '$'
    [HID_KEY_5, HID_KEY_SHIFT_LEFT],            // 37 '%'
    [HID_KEY_7, HID_KEY_SHIFT_LEFT],            // 38 '&'
    [HID_KEY_APOSTROPHE, 0],                    // 39 '''
    [HID_KEY_9, HID_KEY_SHIFT_LEFT],            // 40 '('
    [HID_KEY_0, HID_KEY_SHIFT_LEFT],            // 41 ')'
    [HID_KEY_8, HID_KEY_SHIFT_LEFT],            // 42 '*'
    [HID_KEY_EQUAL, HID_KEY_SHIFT_LEFT],        // 43 '+'
    [HID_KEY_COMMA, 0],                         // 44 ','
    [HID_KEY_MINUS, 0],                         // 45 '-'
    [HID_KEY_PERIOD, 0],                        // 46 '.'
    [HID_KEY_SLASH, 0],                         // 47 '/'
    [HID_KEY_0, 0],                             // 48 '0'
    [HID_KEY_1, 0],                             // 49 '1'
    [HID_KEY_2, 0],                             // 50 '2'
    [HID_KEY_3, 0],                             // 51 '3'
    [HID_KEY_4, 0],                             // 52 '4'
    [HID_KEY_5, 0],                             // 53 '5'
    [HID_KEY_6, 0],                             // 54 '6'
    [HID_KEY_7, 0],                             // 55 '7'
    [HID_KEY_8, 0],                             // 56 '8'
    [HID_KEY_9, 0],                             // 57 '9'
    [HID_KEY_SEMICOLON, HID_KEY_SHIFT_LEFT],    // 58 ':'
    [HID_KEY_SEMICOLON, 0],                     // 59 ';'
    [HID_KEY_COMMA, HID_KEY_SHIFT_LEFT],        // 60 '<'
    [HID_KEY_EQUAL, 0],                         // 61 '='
    [HID_KEY_PERIOD, HID_KEY_SHIFT_LEFT],       // 62 '>'
    [HID_KEY_SLASH, HID_KEY_SHIFT_LEFT],        // 63 '?'
    [HID_KEY_2, HID_KEY_SHIFT_LEFT],            // 64 '@'
    [HID_KEY_A, HID_KEY_SHIFT_LEFT],            // 65 'A'
    [HID_KEY_B, HID_KEY_SHIFT_LEFT],            // 66 'B'
    [HID_KEY_C, HID_KEY_SHIFT_LEFT],            // 67 'C'
    [HID_KEY_D, HID_KEY_SHIFT_LEFT],            // 68 'D'
    [HID_KEY_E, HID_KEY_SHIFT_LEFT],            // 69 'E'
    [HID_KEY_F, HID_KEY_SHIFT_LEFT],            // 70 'F'
    [HID_KEY_G, HID_KEY_SHIFT_LEFT],            // 71 'G'
    [HID_KEY_H, HID_KEY_SHIFT_LEFT],            // 72 'H'
    [HID_KEY_I, HID_KEY_SHIFT_LEFT],            // 73 'I'
    [HID_KEY_J, HID_KEY_SHIFT_LEFT],            // 74 'J'
    [HID_KEY_K, HID_KEY_SHIFT_LEFT],            // 75 'K'
    [HID_KEY_L, HID_KEY_SHIFT_LEFT],            // 76 'L'
    [HID_KEY_M, HID_KEY_SHIFT_LEFT],            // 77 'M'
    [HID_KEY_N, HID_KEY_SHIFT_LEFT],            // 78 'N'
    [HID_KEY_O, HID_KEY_SHIFT_LEFT],            // 79 'O'
    [HID_KEY_P, HID_KEY_SHIFT_LEFT],            // 80 'P'
    [HID_KEY_Q, HID_KEY_SHIFT_LEFT],            // 81 'Q'
    [HID_KEY_R, HID_KEY_SHIFT_LEFT],            // 82 'R'
    [HID_KEY_S, HID_KEY_SHIFT_LEFT],            // 83 'S'
    [HID_KEY_T, HID_KEY_SHIFT_LEFT],            // 84 'T'
    [HID_KEY_U, HID_KEY_SHIFT_LEFT],            // 85 'U'
    [HID_KEY_V, HID_KEY_SHIFT_LEFT],            // 86 'V'
    [HID_KEY_W, HID_KEY_SHIFT_LEFT],            // 87 'W'
    [HID_KEY_X, HID_KEY_SHIFT_LEFT],            // 88 'X'
    [HID_KEY_Y, HID_KEY_SHIFT_LEFT],            // 89 'Y'
    [HID_KEY_Z, HID_KEY_SHIFT_LEFT],            // 90 'Z'
    [HID_KEY_BRACKET_LEFT, 0],                  // 91 '['
    [HID_KEY_BACKSLASH, 0],                     // 92 '\'
    [HID_KEY_BRACKET_RIGHT, 0],                 // 93 ']'
    [HID_KEY_6, HID_KEY_SHIFT_LEFT],            // 94 '^'
    [HID_KEY_MINUS, HID_KEY_SHIFT_LEFT],        // 95 '_'
    [HID_KEY_GRAVE, 0],                         // 96 '`'
    [HID_KEY_A, 0],                             // 97 'a'
    [HID_KEY_B, 0],                             // 98 'b'
    [HID_KEY_C, 0],                             // 99 'c'
    [HID_KEY_D, 0],                             // 100 'd'
    [HID_KEY_E, 0],                             // 101 'e'
    [HID_KEY_F, 0],                             // 102 'f'
    [HID_KEY_G, 0],                             // 103 'g'
    [HID_KEY_H, 0],                             // 104 'h'
    [HID_KEY_I, 0],                             // 105 'i'
    [HID_KEY_J, 0],                             // 106 'j'
    [HID_KEY_K, 0],                             // 107 'k'
    [HID_KEY_L, 0],                             // 108 'l'
    [HID_KEY_M, 0],                             // 109 'm'
    [HID_KEY_N, 0],                             // 110 'n'
    [HID_KEY_O, 0],                             // 111 'o'
    [HID_KEY_P, 0],                             // 112 'p'
    [HID_KEY_Q, 0],                             // 113 'q'
    [HID_KEY_R, 0],                             // 114 'r'
    [HID_KEY_S, 0],                             // 115 's'
    [HID_KEY_T, 0],                             // 116 't'
    [HID_KEY_U, 0],                             // 117 'u'
    [HID_KEY_V, 0],                             // 118 'v'
    [HID_KEY_W, 0],                             // 119 'w'
    [HID_KEY_X, 0],                             // 120 'x'
    [HID_KEY_Y, 0],                             // 121 'y'
    [HID_KEY_Z, 0],                             // 122 'z'
    [HID_KEY_BRACKET_LEFT, HID_KEY_SHIFT_LEFT], // 123 '{'
    [HID_KEY_BACKSLASH, HID_KEY_SHIFT_LEFT],    // 124 '|'
    [HID_KEY_BRACKET_RIGHT, HID_KEY_SHIFT_LEFT],// 125 '}'
    [HID_KEY_GRAVE, HID_KEY_SHIFT_LEFT],        // 126 '~'
    [0, 0],                                     // 127
];
